/*
 * Description: singleton abstraction.
 */

#ifndef SINGLETONNEW_H
#define SINGLETONNEW_H

template<typename T>
class SingletonNew {
public:
    static T& GetInstance()
    {
        static T instance;
        return instance;
    }

private:
    SingletonNew() = delete;
    ~SingletonNew() = delete;
};

#endif    // SINGLETONNEW_H
